package com.LeetCode.Hash;

import org.junit.Test;

import java.util.Deque;
import java.util.HashMap;
import java.util.LinkedList;

/**
 * 和为 k的子数组
 */
public class SumOfKSonArray {
    public int subarraySum(int[] nums, int k) {
        HashMap<Integer,Integer> map = new HashMap<Integer, Integer>(){{put(0,1);}};
        int res = 0;
        int pre = 0;

        for(int i = 0; i < nums.length; i++){
            pre += nums[i];
            if(map.containsKey(pre - k)){
                res += map.get(pre - k);
            }
            map.put(pre,map.getOrDefault(pre,0) + 1);

        }
        return res;
    }

    @Test
    public void test(){
        int[] arr = {1,2,3};
        System.out.println(subarraySum(arr,3));
    }
}
